1. Field
Embodiments of the invention relate to using repeated incremental background consistency checking to detect problems with content closer in time to when a failure occurs.
2. Description of the Related Art
A content management system may be described as a software system used to store and manage content holding objects and other objects (e.g., folders to organize, for example, content holding objects and folders) in a computer system. For example, the content management system includes an object repository that stores the content holding objects and other objects. For content holding objects, the object repository contains metadata including the one or more locations of the content elements. The content elements are stored in a separate storage repository.
Thus, the content holding objects stored and managed by the content management system may be associated with any type of computer files in any computer readable format, including text files, documents, annotations, picture files, video files, sound files, etc. In general, the files may be called content elements. Each computer file may be described as a separate content element (i.e., the file itself is not composed of multiple content elements) and stores actual content.
The content management system can maintain multiple versions of the content holding objects and other objects managed and meta-data for each content holding object. The content management system allows users (e.g., humans and machines) to create, access, modify, and delete content holding and other objects, among other operations.
A content holding object is associated with one or more content elements, and the content file may be stored as one or more content elements. For example, multi-page documents (e.g., MICROSOFT® Word documents or Portable Data Format (PDF) documents may be stored as a single content element. (MICROSOFT is a registered trademark of Microsoft Corporation in the United States and/or other countries.) Multiple pages of the same document may be associated with multiple content elements when a paper document is scanned in and each content element is stored as a separate image file. Also, an application using a content management system may manage multiple content elements on a content holding object in application specific ways.
Content management applications are applications built using a content management system. For example, a vendor may sell a content management system, and the buyer may build a management application to solve a business problem using the content management system. A content management application is composed of one or more programs.
In some content management systems, under certain adverse conditions, it is possible for content elements stored in a storage repository to become inconsistent with the information (i.e., metadata and location of the content file) stored for the content element in an object repository. For example, the necessary content element may be missing from the storage repository, while the information in the object repository still points to the location of the missing element. As another example, the content element may be a different size than is described in the metadata for that content element in the object repository. Although rare, these inconsistencies may occur for a variety of reasons. For example, a network file device might not have had an adequate backup power supply when there was a power failure, and, then, after power was restored, it may have been necessary to restore the storage device from a backup and that backup was not completely in sync with the object database backup.
Some content management systems have a content consistency checker tool that can be run to detect inconsistencies between the information in the object repository and the actual content element. A customer may run this tool after certain conditions, such as after restoring a storage device from backup. Sometimes problems (i.e., errors) are not detected right away, however, and may go unnoticed for weeks or even months. When the problem does surface, it is often difficult to determine why the problem occurred.
Thus, there is a need for using repeated incremental background consistency checking to detect problems with content closer in time to when a failure occurs.